// 入口文件
import Vue from 'vue';
// 导入mui样式
import './lib/mui/css/mui.min.css';
import './lib/mui/css/icons-extra.css';
// 导入路由
import VueRouter from 'vue-router';
Vue.use(VueRouter);
// 导入vue-resource 实现ajax
import vueResource from 'vue-resource';
Vue.use(vueResource);
Vue.http.options.root = 'http://47.89.21.179:8080';
Vue.http.options.emulateJSON = true;
// 注册vuex
import Vuex from 'vuex';
Vue.use(Vuex);

// 将cookies中的car放到state中
var car = JSON.parse(localStorage.getItem('car') || '[]');
var store = new Vuex.Store({
	state: {    // this.$store.state.***
		car: car  //每个对象有四个属性；第一个商品的id，第二个要购买的数量，第三个为要该买的数量，第四个为购物车默认选中开关
	},
	mutations: {   // this.$store.commit() 第一个参数填方法的名称，第二个参数填要传入的参数,
		addToCar(state,goodsInfo){
			var goodsFlag = false;    //假设默认没找到
			state.car.some(item=>{
				if (item.id == goodsInfo.id) {
					item.count += parseInt(goodsInfo.count);
					goodsFlag = true;
					return true;
				}
			})
			// 若循环之后得到的goodsFlag结果还为false,则说明没找到，那么push进去
			if (goodsFlag == false) {
				state.car.push(goodsInfo);
			}
			// 将商品数据存储在cookies中
			localStorage.setItem('car',JSON.stringify(state.car));
		}
		
	},
	getters: {   //this.$store.getters.***
		getCountAll(state){
			var index = 0;
			state.car.forEach(item=>{
				index += item.count;
			})
			return index;
		}
	}
})
// 按需导入（mint-ui）
// import { Header, Swipe, SwipeItem, Button, Lazyload } from 'mint-ui';
// Vue.component(Header.name, Header);
// Vue.component(Swipe.name, Swipe);
// Vue.component(SwipeItem.name, SwipeItem);
// Vue.component(Button.name, Button);
// Vue.use(Lazyload);
// 全部加载
import MintUI from 'mint-ui';
import 'mint-ui/lib/style.css'; 
Vue.use(MintUI);
// 安装图片预览插件
import VuePreview from 'vue-preview'
Vue.use(VuePreview);
// 导入格式化时间插件
import moment from 'moment';
// 定义全局的时间过滤器
Vue.filter('dataFormat',function(dataStr,pattern="YYYY-MM-DD HH:mm:ss"){
	return moment(dataStr).format(pattern);
})
// 导入路由模块
import router from './router.js';

// 导入根组件
import app from './App.vue';

var vm = new Vue({
	el: '#app',
	render:function(c){
		return c(app);
	},
	router,   //挂载路由对象
	store    //挂载store(vuex)
})